package com.kamistoat.meimeimall.common.valid;

import javax.validation.Constraint;
import java.lang.annotation.*;

/**
 * 自定义校验注解。该注解的作用是: 为被标注的Integer型字段提供限制值，例如@IntValueList(vals={1,2})就是限制字段的值只能为1或者2
 */
// 声明该注解可以用在那些数据类型上。显然该注解是用来限制字段的，因此声明其可用在FIELD和PARAMETER上即可
@Target({ElementType.FIELD, ElementType.PARAMETER})
// 声明该注解仅在RUNTIME可见
@Retention(RetentionPolicy.RUNTIME)
@Documented
// javax.validation包特有的注解。如果一个注解是校验注解，使用@Constraint指定该校验注解的处理器类。
@Constraint(validatedBy = {IntValueListConstraintValidation.class})
public @interface IntValueList {
    // 限制的值
    int[] vals() default {};
    // 提示信息
    String message() default "限制Integer取值";
    // 分组校验的组名
    Class<?>[] groups() default {};
}
